Video enhanced time tracking system and method

ABSTRACT

A video enhanced time tracking system is provided. The system may include a video capturing device, software applications (such as an application running on the video capturing device), and a backend system. The application may include a time tracking application that tracks time simultaneously as the video capturing device captures video. The captured video and the tracked time information may be uploaded to the backend system where it may be stored and processed. The system may correlate the tracked time information with the captured video and provide it to a client for review. In some embodiments, the system also includes an image recognition system that recognizes the user to authenticate the user&#39;s identity, that recognizes the user&#39;s workspace to determine when the user is working, and that recognizes the work being performed to determine the client that the user may be working for.

COPYRIGHT STATEMENT

This patent document contains material subject to copyright protection.The copyright owner has no objection to the reproduction of this patentdocument or any related materials in the files of the United StatesPatent and Trademark Office, but otherwise reserves all copyrightswhatsoever.

FIELD OF THE INVENTION

This invention relates to time tracking, including a framework, system,and method for video enhanced time tracking.

BACKGROUND

Hourly billing for services provided by contracted labor is commonplacethroughout the world. In most cases, the contractor keeps track ofhis/her time spent on a particular project for a particular client, andbills the client according to an hourly rate based on the number ofhours spent on the project.

In some cases, the contractor may keep track of his/her time spentmanually. In other cases, the contractor may use an automated system totrack his/her time spent on a project. However, in either of thesecases, it is difficult for the client to know for sure that the billingaccurately reflects the actual amount of time spent on any particularproject. Given this, the danger of overbilling is prevalent.

Accordingly, there is a need for a time tracking system that providesproof to a client that the time billed accurately reflects the timespent on a particular project. There also is a need for a video enhancedtime tracking system that tracks time spent by the contractor on aparticular project, and that simultaneously captures video of thecontractor performing the work. There also is a need for a system thatcorrelates the captured video with the tracked time and that providesthe information to the client in an easy to understand format. Therealso is a need for a system that allows the client to watch the capturedvideo in real time, and/or to review the captured video at any timeduring or after the work is performed.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects, features, and characteristics of the present invention aswell as the methods of operation and functions of the related elementsof structure, and the combination of parts and economies of manufacture,will become more apparent upon consideration of the followingdescription and the appended claims with reference to the accompanyingdrawings, all of which form a part of this specification. None of thedrawings are to scale unless specifically stated otherwise.

FIG. 1 shows an overview of a video enhanced time tracking system inaccordance with exemplary embodiments hereof;

FIG. 2 shows aspects of a video capturing device in accordance withexemplary embodiments hereof;

FIG. 3 shows aspects of a video capturing device, a separate device anda mobile device in accordance with exemplary embodiments hereof;

FIG. 4 shows aspects of a video capturing device in accordance withexemplary embodiments hereof;

FIGS. 5-6 show aspects of a machine learning process in accordance withexemplary embodiments hereof;

FIG. 7 shows aspects of a video enhanced time tracking system computingenvironment in accordance with exemplary embodiments hereof; and

FIG. 8 depicts aspects of computing and computer devices in accordancewith exemplary embodiments hereof.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

In general, the system according to exemplary embodiments hereofprovides a system and method that collects video content and correlatesthe video content with time tracked activities. In some embodiments, thesystem may correlate captured video with work activities billed by thehour. For example, a client may hire a contractor to perform a workactivity, and the system may track the time spent by the contractor onthe activity while simultaneously capturing video of the contractor atwork. The system may then correlate the tracked time with the video toensure that tracked time and the actual time spent on the activity (asreflected in the captured video) match. In this way, the system mayensure that the billed time (the tracked time) accurately reflects theactual time spent on the activity. It is understood that the system maybe tailored to be used with any industry such as, without limitation,legal, medical, consulting, automotive repair, home repair, other typesof construction, and/or any other types of industries in which time maybe billed by the hour. It also is understood that the example above ismeant for demonstration and that the system may be used in any number ofways to correlate tracked time with captured video as will be describedfurther herein.

FIG. 1 shows an overview of an exemplary framework for a video enhancedtime tracking system 10 (also referred to herein as simply the system10) according to exemplary embodiments hereof. As shown, the videoenhanced time tracking system 10 may include one or more video capturingdevices 100 that may interface with a backend system 200. The videocapturing device 100 may interface with the backend system 200 and withusers U1, U2, . . . Un of the system 10 (individually and/orcollectively) via one or more application interfaces 300 (e.g.,software, a mobile application or “app”, a browser, website or Internetinterface, or other types of applications) running on the one or morevideo capturing devices 100.

The system 10 also may include an image recognition system 400. Thesystem 10 also may include other systems, elements and components asrequired by the system 10 to fulfill its functionalities. In addition,the system 10 may interface with various external systems 500 (e.g.,clients, billing services, accounting services, etc.).

The video capturing devices 100 and the backend controller 200 maypreferably be connected to one or more networks 202 (e.g., the Internet,LAN, WAN, wireless communication systems, cellular communicationsystems, telephony or other types of communication systems or protocols)and may communicate thereby. In some embodiments, the backend system 200may include a cloud platform (e.g., one or more backend servers), one ormore local controllers, or any combination thereof. In some embodiments,the backend controller 200 includes a cloud platform that interfaceswith one or more local controllers. For example, administrators An ofthe system 10 may interface with the system 10 via a local controller incommunication to a cloud platform.

The backend system 200 may include additional applications 204 anddatabases 206 as will be described in other sections. For example, thebackend system 200 may include elements of the image recognition system400.

In some embodiments, the application 300 includes a mobile application(“app”) running on a video capturing device 100. In general, theapplication 300 may include software to (I) control the operations ofthe video capturing device 100, (ii) to track time, (iii) to interfacewith the user Un, (iv) to interface with the backend system 200, and (v)to include and/or run other applications with various functionalitiessuch as the image recognition system 400, reporting, etc.

For example, the application 300 may provide a graphical user interface(GUI) that enables the user Un to interface with the application 300,the backend 200 and the overall system 10. The application 300 maygenerally provide an interface with which the user Un may enterinformation for the system 10 to utilize (e.g., upload to the backend100), and interface controls (e.g., touchscreen buttons, etc.) for theuser Un to activate while interacting with the system 10. Theapplication 300 also may display data and other types of informationthat the user Un may read or otherwise consume (e.g., time trackinginformation, statistics, etc.). In general, and in some embodiments, theapplication 300 may provide a primary interface with which the user Unmay interact with the system 10.

It is understood that various functionalities of the system 10 may beperformed by the backend 200 as described herein, and that all or someof the same functionalities also may be performed by the application300. In some embodiments, the backend 200 and the application 300 maywork together in sharing and/or otherwise performing the functionalitiesof the system 10 as described.

To provide a general understanding of the system 10 and the videoenhanced time tracking procedure, a summary of steps is described below.

-   -   1. First, the user Un launches the application 300 on the video        capturing device 100 and orients the video capturing device 100        to capture video of his/her workplace (e.g., the video capturing        device 100 may be aimed at the user's computer screen);    -   2. The mobile application 300 communicates with the backend        system 200 and establishes a link between the two for data        transfer;    -   3. Next, the user Un interfaces with the video capturing device        100 (via the application 300) to identify a project (e.g., for a        particular client) that he/she intends to work on;    -   4. The application 300 interfaces with the backend system 200 to        set the identified project as active such that time tracked and        video captured may be attributed to the correct project;    -   5. Next, the user Un instructs the application 200 to begin        tracking time and to begin capturing video;    -   6. At this point, the user Un begins to work on the project        while the system 10 tracks the time and captures the video;    -   7. If the user Un needs to take a break, he/she interacts with        the application 300 to pause the time tracking and the video        capturing;    -   8. Upon pausing, the system 10 may insert an annotation into the        video stream denoting the break with an associated time stamp;    -   9. When the user Un is ready to begin working on the project        again, he/she may initiate the video capturing device 100 (via        the application 300) to restart the time tracking and the video        capturing;    -   10. The system 10 may again begin tracking time and capturing        video. The newly tracked time and newly captured video is        combined with the prior tracked time and prior captured video;    -   11. The process may continue until (I) the project is        completed, (ii) the user Un wishes to send the client a bill,        and/or (iii) the project is otherwise paused for whatever        reason;    -   12. The system 10 may correlate the time tracking data with the        captured video data and provide one or more reports to the        client.

It is understood that the summary of steps described above is meant fordemonstration and that the actual process may include additional stepsnot listed and/or less steps than listed. It is also understood that anyof the steps may be performed in any different order.

Video Capturing Device

In some embodiments as shown in FIG. 2, the video capturing device 100includes a video camera 102 including an optical system 104 (e.g.,aperture, lens, etc., preferably high-definition), a display 106, memory108 (e.g., a camera roll and/or other memory to store the video, theapplication(s) 300, etc.), a processor and an operating system and/orfirmware that supports and generally runs the applications 300, 204and/or the image recognition system 400 (or portions thereof), otherelements such as a microphone, a speaker (for providing audible signalsto the user Un, a rechargeable battery, and any other components andelements as necessary for the video capturing device 100 to perform itsfunctionalities. It may be preferable that the video capturing device100 be weatherproof, waterproof, water resistant, etc. so that it maywithstand the elements.

In some embodiments, the video capturing device 100 includes a mount 110adaptable to generally support the video capturing device 100 asnecessary for it to perform its functionalities. For example, the mount110 may include a stand, a clip (e.g., a lapel clip), a lanyard, a zipcord, a clamp, a hanger, a latch, hook and loop material, double-sidedtape, adhesive, magnets, other types of attachment and/or mountingmechanisms and any combination thereof. In general, the mount 100 maysupport the video capturing device 100 in a configuration andorientation that enables the video capturing device 100 to be properlyaimed, focused, and otherwise positioned to adequately capture thedesired video as required. In some embodiments, the mount 110 mayinclude a camera-stabilizing mount to compensate for unwanted cameramovement. It is understood that while the depiction of the mount 110 inFIG. 2 shows it as configured with the bottom of the video capturingdevice 100, the mount 110 may be configured with any portion of thevideo capturing device 100 as required (e.g., its bottom, back, sides,top, front and any combination thereof).

For example, in some embodiments, the mount 110 includes a stand (e.g.,a desktop stand) adapted to hold the video capturing device 100 uprightwith its optical system 104 aimed at the user's computer screen whereonthe user's work is displayed. In another example, the mount 110 includesa clip that attaches the device 100 to the user's front lapel, placket,or other area so that the device's optical system 104 is properly aimed.In another example, the mount 110 may include a computer display mountthat attaches the device 100 directly to the user's computer display ina configuration that enables it to take video of the user's work. Insome embodiments, the mount 110 is attached to the video capturingdevice 100 while in other embodiments the mount 110 may include astand-alone accessory. It is understood that the examples describedabove are for demonstration and that the mount 110 may include any typeof mounting and/or securing mechanism that adequately supports the videocapturing device 100, and that the scope of the system 10 is not limitedin any way by the type, form or architecture of the mount 110.

In some embodiments, the video capturing device 100 is small in size(e.g., 1″ wide×1″ tall×0.25″ thick or other sizes) so that it may beeasily clipped onto the user's lapel or placket, supported on the user'sdesktop, clipped to the user's computer display, etc.

As shown in FIG. 3, it may be preferable that the video capturing device100 be positioned and supported such that the user's workspace WS isviewable within the field of view of the camera 102 as depicted by F1and F2. In this way, as described in other sections, the video capturingdevice 100 may capture video of the work being performed by the user Un.In some embodiments, the workspace WS may include a desk with a computermonitor, an automobile mechanic's garage, a construction site, an areabeing cleaned, any other types of workspaces WS and any combinationthereof.

In some embodiments as shown in FIG. 3, if the display 106 is small orotherwise not conveniently positioned for interaction, the display 106may be mirrored to a separate device 112 such as the user's smartphone,tablet computer, desktop computer, laptop computer, and/or other typesof devices with suitable displays. To do so, the separate device 112 maybe paired with the video capturing device 100 (e.g., using Bluetooth asrepresented by the dashed arrow) and the video capturing device 100 maybe controlled by the user Un interacting with the separate device 112(e.g., by interacting with a graphical user interface (GUI) on theseparate device's display).

In some embodiments, the video capturing device 100 includes a mobiledevice 114 such as a smartphone, tablet computer, and/or other types ofmobile devices. In this embodiment, the device's camera 102 may includethe native camera on the mobile device 114. In some embodiments, themobile device 114 may include the separate device 112.

In some embodiments, the video capturing device 100, the separate device112, the mobile device 114 and/or the backend system 200 includes aGlobal Positioning System (GPS) that is used to identify the location ofthe video capturing device 100, the separate device 112, the mobiledevice 114 (and therefor of the user Un) while the video is beingcaptured. In this way, the system 10 may identify the location of theuser Un while he/she is working on a particular project for a particularclient.

Application

In some embodiments, the application 300 resides on the video capturingdevice 100 and generally controls its functionalities and usage. Theapplication 300 includes a graphical user interface (GUI) that may bepresented on the device's display 106 and that includes controls (e.g.,touchscreen and/or mechanical buttons, etc.) that the user Un mayactivate to control the system 10. For example, the GUI may includecontrols adapted to start, pause, restart, end, and otherwise controlthe system's time tracking and/or video capturing functionalities. TheGUI also may include controls and/or other mechanisms that enable theuser Un to interface with the system 10 during its general usage (e.g.,to log into the system 10, send a bill to a client, etc.). In someembodiments, the application 300 includes voice recognition capabilitiesso that it may receive and implement voice commands from the user Un. Inaddition, the application 300 may accommodate any language.

In some embodiments, the application 300 may present instructions,wizards, and/or other types of guidance to the user Un via the GUI.

In some embodiments, the application's GUI is mirrored to a separatedevice 112 and/or a mobile device 114 paired with the video capturingdevice 100. In this way, the user Un may interact with the GUI on theseparate device 112 and/or mobile device 114 (which may be moreconvenient) to control the video capturing device 100 and to generallyinteract with the system 10. This may be preferable if the videocapturing device's display 106 is small and/or inconvenientlypositioned.

In some embodiments, the application 300 resides on the separate device112 and/or the mobile device 114 paired with the video capturing device100. In this way, the user Un may interact with the application 300 andthe GUI on the separate device 112 and/or mobile device 114 (which maybe more convenient) to control the video capturing device 100 and togenerally interact with the system 10. This may be preferable in thatthe video capturing device 100 may not be required to include additionalprocessors, operating systems and other elements already included in theseparate device 112 and/or the mobile device 114, and instead, mayinclude a microprocessor and/or microcontroller.

In some embodiments in which the video capturing device 100 includes amobile device 114, the application 300 may reside on the mobile device114.

In some embodiments, the application 300 includes a timer 302 that whenactivated (e.g., started by the user Un via a control mechanism), trackstime, and when deactivated (paused or ended), stops tracking time. Theapplication 300 may record information regarding the amount of trackedtime and store this information on its internal memory 108 and/ortransfer the information to the backend system 200 for storage on itsdatabases 206. The time tracking information may then be processedlocally by the application 300 (running on the video capturing device'sprocessor) and/or by the backend's applications 204.

In some embodiments, the application 300 includes the necessary driversto control the functionalities of the video capturing device 100, e.g.,to capture video. In some embodiments, the application 300 may controlthe video capturing device 100 to capture video in parallel andsimultaneously with the tracking of the time by the application's timer302. For example, in some embodiments, the activation of the timetracking functionality automatically activates the video capturing, orvice versa. In this way, each time the time tracking is started, paused,restarted, ended, and/or otherwise controlled, the video capturing alsois started, paused, restarted, ended, and/or otherwise controlled inunison. In some embodiments, the system 10 will not track time unlessthe video capturing device 100 is activated and capturing video inparallel.

In some embodiments, the application 300 and/or the backend 200 includesa variety of functionalities associated with time tracking as are knownin the art. For example, the application 300 and/or the backend 200 maystore information relating to projects and/or clients to whom the userUn wishes to provide time tracking information (e.g., for the billing ofservices). The application 300 and/or the backend 200 may make thisinformation available to the user Un, and the user Un may choose whichproject and/or client to track time for at any given moment. In thisway, the system 10 may track time and capture video and associate thisdata with the properly associated client and/or project.

Data Streaming, Recording and Reporting

In some embodiments, the video capturing device 100 captures the videoin parallel with the time tracking and uploads the captured video to thebackend system 200 in real time. The backend system 200 may then livestream the video and make it available for real time viewing to anauthorized (and authenticated) client Cn. In addition, the backendsystem 200 may store the captured video into a video capture database220 and associate it with the user Un and/or the respective client Cn.The backend system 200 then may make the stored video available to theclient Cn and/or the user Un who may view all or portions of the storedvideo at any time (e.g., on a website, on a media device such as asmartphone, tablet computer, laptop computer, desktop computer, etc.).

In some embodiments, the captured video is correlated and identifiedwith the tracked time taken during the capturing of the video. In thisway, there is preferably a one-to-one correlation with the amount oftime tracked and the length of the overall captured video. For example,if a user Un uses the system 10 to track one hour's worth of work, thesystem may capture one hour of associated video. In some embodiments,the system 10 annotates the video with the user's identificationinformation (e.g., his/her name, name of his/her company, etc.), withthe client's identification information (e.g., his/her name, name ofhis/her company, etc.), with a time stamp of when the video wascaptured, with a GPS location associated with where the video wascaptured, and with other relevant information and/or annotations.

In some embodiments, the uploading of the captured video may be uploadedto the backend system 200 by a paired separate device 112 and/or pairedmobile device 114. This may be preferable when the video capturingdevice 100 may not have the storage capacity, the bandwidth, or othertechnical specifications required for the data transfer.

In some embodiments, the system 10 may provide a client Cn with a linkto view the captured video accompanied by a report specifying the amountof tracked time, the specific time and dates associated with the trackedtime, the location of the user Un during the time tracking, and/or otherinformation relating to the tracked time, the captured video, the userUn, the client Cn and other information. In other embodiments, thesystem 10 may generate reports that include representative portions ofthe captured video for the client Cn to review. Any reports generated bythe system 10 may preferably be compatible with industry standardbilling and accounting software. It is understood that the system 10 maypresent any or all of the captured video and/or any informationregarding the tracked time to the client in any format using anymethodologies, at any time (including real time streaming, recordedvideo, etc.) and that the scope of the system 10 is not limited in anyway by the way in which the system 10 provides some or all of thecaptured video to any client Cn.

Image Recognition System

In some embodiments, the system 10 includes an image recognition system400 that may comprise a general image recognition system as well as afacial image recognition system. Accordingly, the system 400 may includean image recognition application 402 and/or a facial recognitionapplication 404 running on the video capturing device 100 and/or thebackend 200. In some embodiments, the image recognition application 402and the facial recognition application 404 may be combined.

The image recognition system 400 interfaces with the video capturingdevice 100 to receive images to be processed (e.g., recognized). Theseimages may include faces or other identifiable body parts (to berecognized by the facial recognition application 404), as well as othertypes of images such as computer displays, workspaces (e.g., desk tops,rooms, warehouses, etc.), logos, insignia, and other types of images (tobe recognized by the image recognition application 402).

In some embodiments, the image recognition system 400 (the facialrecognition application 404) is used to recognize the user's face inorder to determine and confirm the user's identity. This may take placeat the beginning of a timed work session to authenticate that the userUn that is performing the work is the same user that registered with thesystem 10. This also may take place at periodic intervals during thetimed work session to ensure that the initially authenticated user Un isstill the same user Un throughout the timed session. The periodicintervals may be predetermined and/or random. In one example, this mayensure that a specific contractor hired to perform a specific task by aparticular client is in fact the contractor that performs the workthroughout the entire process. In some embodiments, the system 10 usesother types of biometric identification technologies to authenticate theuser Un in lieu of or in combination with the facial recognitionprocess. For example, the system 10 may include voice recognition,fingerprint (or palm) authentication, retinal scanning, other types ofbiometric authorization processes used to confirm the identity of theuser, and any combination thereof.

In one example, when the user Un activates the application 300 to begintracking time and/or to begin capturing video (via the video capturingdevice 100) the application 300 may ask the user Un to use the facialrecognition application 400 to first authenticate his/her identity.Then, once his/her identity has been authenticated, the system 10 maybegin tracking time and capturing video. To use the facial recognitionsystem 400, the user Un may position his/her face within the camera'sfield of view to allow the system 400 to make the identification as isknown in the art.

In some embodiments, the facial recognition application 404 usesbiometrics to map facial features from a captured facial image (e.g.,from the camera 102) and then compares the information with a databaseof known faces to find a match and to thereby authenticate the user'sidentity.

In one example, the facial recognition application 404 may perform oneor more acts, including without limitation:

-   -   1. Detect, track and score facial images from live video or        images (e.g., from the camera 102);    -   2. Create biometric templates of the best images of faces for        comparison to known faces;    -   3. Compare the biometric template(s) to known faces within one        or more databases (in the cloud or otherwise); and    -   4. Find a positive match and assist in correlating the        determined identity with other information (e.g., with the        identity of the intended user Un).

In one exemplary embodiment hereof, the image recognition system 400 mayimplement machine learning (e.g., a machine learning kit library) todetect a face and produce face coordinates for cropping. In this way,the system 10 may create a facial image. The system 10 may then scorethe detected faces and select the facial images that may include thebest resolution. These images may then be sent to the backend system 200for face recognition. The cropped face (preferably about ˜100 klb infile size) may be sent to the cloud platform for conversion to abiometric template and the image may be matched (e.g., the identity ofthe facial image may be identified). This may include the backend system200 interfacing with third-party facial recognition systems and/ordatabases. The identified face information may then be used toauthenticate the identity of the user Un. It may be preferable that thisentire process take about <1 second.

In some embodiments, the image recognition system 400 (the imagerecognition application 402) is used to recognize elements of the user'sworkspace WS. For example, the image recognition application 402 may beused to recognize and identify the user's computer display, the top ofthe user's desk, the user's office, a particular item or object withinthe user's workspace WS, other areas and/or objects or forms that maygenerally identify the user's workspace WS and any combination thereof.In doing so, the system 10 may learn to identify when the user Un may beworking such that it may automatically begin tracking time and/orcapturing video. As shown in FIG. 4, it may be preferable that the videocapturing device 100 is positioned such that the recognizable elementsof the user's workspace WS are within the field of view of the camera102 as depicted by F1 and F2.

In some embodiments, the image recognition system 400 may bepre-programmed to recognize these types of elements (e.g., using alibrary of workspace identifying elements), may learn to recognize theseelements (using machine learning), may be instructed by the user Un torecognize the elements (e.g., by through the app 300), or by othermeans.

In some embodiments as shown in FIG. 5, the system 10 may implementmachine learning (e.g., using the machine learning application 212 asdescribed below) including deep neural networks (DNNs), artificialneural networks (ANNs), etc. to learn characteristics of the user'sworkspace so that it may thereby recognize the workspace characteristicsand attribute them to the user Un. The machine learning application 212may use any type of learning protocols such as, without limitation,feature learning, representation learning, etc.

In some embodiments of this, the system 10 may store images of theuser's workspace (and/or other information regarding the workspace) intothe image recognition database(s) 222 for use with the machine learningapplication 212. As shown in FIG. 5, the system 10 may then capture newimages of the user's workspace as the user Un indicates to the system 10that he/she is working (e.g., by activating the timer 302 and/or thecamera 102), apply the new workspace images to the machine learningapplication 212 and the image recognition database 222, and learn torecognize the new and various workspaces that the user Un may use. Inthis way, the system 10 may learn to recognize when the user Un isworking and may automatically initialize the timer 302 to begin trackingtime and/or the video capturing device 100 to begin capturing video. Insome embodiments the system 10 may recognize when the user Un appears tobe working and may subsequently query the user Un to identify theproject and/or the client that he/she is working for at the time. Oncethis is identified, the system 10 may begin capturing the video and timespent and attribute the video and/or the tracked time to the associatedproject or client.

In some embodiments as shown in FIG. 6, the system 10 may implementmachine learning (e.g., using the machine learning application 212) tolearn characteristics of a particular project so that the system 10 alsomay learn to identify the project and/or the client for whom the user Unmay be working. In some embodiments of this, the system 10 may storeimages of a particular project into the image recognition database 222for use with the machine learning application 212. This may includeimages of a physical project such as construction or auto repair, aparticular document on the user's computer screen (e.g., withrecognizable client letterhead, logo, branding, etc.) or other types ofwork-related images. As shown in FIG. 5, the system 10 may then capturenew images of the project(s) as the user Un indicates to the system 10that he/she is working (e.g., by activating the timer 302 and/or thecamera 102), apply the new product images to the machine learningapplication 212 and the image recognition database 222, and learn torecognize the new and various projects that the user Un may periodicallywork on. In this way, the system 10 may learn to recognize not only whenthe user Un is working but also for what project and/or client. Thesystem 10 may then automatically initialize the timer 302 to begintracking time and/or the video capturing device 100 to begin capturingvideo and attribute the video and tracked time to the particular projectand/or client.

System Structure

FIG. 7 shows aspects of an exemplary video enhanced time tracking system10 of FIG. 1. As shown, the system 10 and backend system 200 comprisesvarious internal applications 204 and one or more databases 206,described in greater detail below. The internal applications 204 maygenerally interact with the one or more databases 206 and the datastored therein.

The database(s) 206 may comprise one or more separate or integrateddatabases, at least some of which may be distributed. The database(s)206 may be implemented in any manner, and, when made up of more than onedatabase, the various databases need not all be implemented in the sameway. It should be appreciated that the system is not limited by thenature or location of database(s) 206 or by the manner in which they areimplemented.

Each of the internal applications 204 may provide one or more servicesvia an appropriate interface. Although shown as separate applications204 for the sake of this description, it is appreciated that some or allof the various applications 204 may be combined. The variousapplications 204 may be implemented in any manner and need not all beimplemented in the same way (e.g., using the same software languages,interfaces or protocols).

In some embodiments, the applications 204 may include one or more of thefollowing applications 204:

-   -   1. Time tracking application(s) 206. Note that the time tracking        application 206 may correlate and/or interact with the        application 300 in regard to the application's time tracking        functionalities.    -   2. Video capturing application(s) 208. Note that the video        capturing application 208 may correlate and/or interact with the        application 300 in regard to the application's video capturing        functionalities.    -   3. Image recognition application(s) 210. Note that the image        recognition application 206 may correlate and/or interact with        the image recognition system 400, the image recognition        application 402, and/or the facial recognition application 404.    -   4. Machine learning application(s) 212. This application may        receive any type of input data from any applicable system and/or        element such as the application 300, the video capturing device        100, the user Un, the external systems 500, any other system        and/or element and any combination thereof.    -   5. Data input/output applications(s) 214. This application may        input and/or output any type of data from or to any applicable        system and/or element such as the application 300, the video        capturing device 100, external systems 500 (e.g., user's        clients), any other system and/or element and any combination        thereof.    -   6. Data reporting application(s) 216. This application may        generate any type of report regarding the use and/or        functionalities of the system 10 including tracked time,        captured video, historical data, any other types of data and/or        information and any combination thereof.    -   7. Navigational application(s) 218. This application includes a        Global Positioning System (GPS) or other types of geolocation        systems to locate the position of the video capturing device        100, the separate device 112 and/or the mobile device 114 (and        therefore location of the user Un) during the capturing of the        video.

The applications 104 also may include other applications and/orauxiliary applications (not shown). Those of ordinary skill in the artwill appreciate and understand, upon reading this description, that theabove list of applications is meant for demonstration and that thesystem 10 may include other applications that may be necessary for thesystem 10 to generally perform its functionalities as described in thisspecification. In addition, as should be appreciated, embodiments orimplementations of the system 10 need not include all of theapplications listed, and that some or all of the applications may beoptional. It is also understood that the scope of the system 10 is notlimited in any way by the applications that it may include.

In some embodiments, the database(s) 206 may include one or more of thefollowing databases 206:

-   -   1. Time tracking database(s) 218. This database may store any        type of time tracking data and/or other types of information        captured by, related to, and/or required by the application 300        and/or the timer 302.    -   2. Video capture database(s) 220. This database may store any        type of video data and/or other types of information captured        by, related to, and/or required by the video capturing device        100 and/or the application 300.    -   3. Image recognition database(s) 222. This database may store        any data and/or other types of information related to and/or        required by the image recognition system 400, the image        recognition application 402 and/or the facial recognition        application 404. For example, the database 222 may include        information regarding the different users Un, workspaces,        workspace items, projects, and/or other elements required for        these objects to be recognized by the system 10.    -   4. Client and project database(s) 224. This database may store        any information regarding the clients and/or projects that the        user Un may be working on at any given moment.    -   5. Data report(s) database(s) 226. This database may store any        reports of any kind generated by the system 10.

It is understood that the above list of databases is meant fordemonstration and that the system 10 may include some or all of thedatabases, and also may include additional databases as required. It isalso understood that the scope of the system 10 is not limited in anyway by the databases that it may include.

Various applications 204 and databases 202 in the video enhanced timetracking system 10 may be accessible via interface(s) 242. Theseinterfaces 242 may be provided in the form of APIs or the like and madeaccessible to external users Un and/or clients Cn via one or moregateways and interfaces 244 (e.g., via a web-based application 300and/or a mobile application 300 running on the video capturing device100 and/or on a client's personal device such as a mobile phone, tabletcomputer, desktop computer, laptop computer, etc.).

It is understood that any aspect and/or element of any embodimentdescribed herein or otherwise may be combined in any way to form newembodiments all of which are easily understood by a person of ordinaryskill in the art and all of which are within the scope of the system 10.

Those of ordinary skill in the art will appreciate and understand, uponreading this description, that embodiments hereof may provide differentand/or other advantages, and that not all embodiments or implementationsneed have all advantages.

Computing

The services, mechanisms, operations and acts shown and described aboveare implemented, at least in part, by software running on one or morecomputers or computer systems or devices. It should be appreciated thateach user device is, or comprises, a computer system.

Programs that implement such methods (as well as other types of data)may be stored and transmitted using a variety of media (e.g., computerreadable media) in a number of manners. Hard-wired circuitry or customhardware may be used in place of, or in combination with, some or all ofthe software instructions that can implement the processes of variousembodiments. Thus, various combinations of hardware and software may beused instead of software only.

One of ordinary skill in the art will readily appreciate and understand,upon reading this description, that the various processes describedherein may be implemented by, e.g., appropriately programmed generalpurpose computers, special purpose computers and computing devices. Oneor more such computers or computing devices may be referred to as acomputer system.

FIG. 8 is a schematic diagram of a computer system 600 upon whichembodiments of the present disclosure may be implemented and carriedout.

According to the present example, the computer system 600 includes a bus602 (i.e., interconnect), one or more processors 604, one or morecommunications ports 614, a main memory 610, removable storage media610, read-only memory 608, and a mass storage 612. Communication port(s)614 may be connected to one or more networks by way of which thecomputer system 600 may receive and/or transmit data.

As used herein, a “processor” means one or more microprocessors, centralprocessing units (CPUs), computing devices, microcontrollers, digitalsignal processors, or like devices or any combination thereof,regardless of their architecture. An apparatus that performs a processcan include, e.g., a processor and those devices such as input devicesand output devices that are appropriate to perform the process.

Processor(s) 604 can be (or include) any known processor, such as, butnot limited to, an Intel® Itanium® or Itanium 2® processor(s), AMD®Opteron® or Athlon MP® processor(s), or Motorola® lines of processors,and the like. Communications port(s) 614 can be any of an RS-232 portfor use with a modem-based dial-up connection, a 10/100 Ethernet port, aGigabit port using copper or fiber, or a USB port, and the like.Communications port(s) 614 may be chosen depending on a network such asa Local Area Network (LAN), a Wide Area Network (WAN), a CDN, or anynetwork to which the computer system 600 connects. The computer system600 may be in communication with peripheral devices (e.g., displayscreen 610, input device(s) 618) via Input/Output (I/O) port 620. Someor all of the peripheral devices may be integrated into the computersystem 600, and the input device(s) 618 may be integrated into thedisplay screen 610 (e.g., in the case of a touch screen).

Main memory 610 can be Random Access Memory (RAM), or any other dynamicstorage device(s) commonly known in the art. Read-only memory 608 can beany static storage device(s) such as Programmable Read-Only Memory(PROM) chips for storing static information such as instructions forprocessor(s) 604. Mass storage 612 can be used to store information andinstructions. For example, hard disks such as the Adaptec® family ofSmall Computer Serial Interface (SCSI) drives, an optical disc, an arrayof disks such as Redundant Array of Independent Disks (RAID), such asthe Adaptec® family of RAID drives, or any other mass storage devicesmay be used.

Bus 602 communicatively couples processor(s) 604 with the other memory,storage and communications blocks. Bus 602 can be a PCI/PCI-X, SCSI, aUniversal Serial Bus (USB) based system bus (or other) depending on thestorage devices used, and the like. Removable storage media 610 can beany kind of external hard-drives, floppy drives, IOMEGA® Zip Drives,Compact Disc-Read Only Memory (CD-ROM), Compact Disc-Re-Writable(CD-RW), Digital Versatile Disk-Read Only Memory (DVD-ROM), etc.

Embodiments herein may be provided as one or more computer programproducts, which may include a machine-readable medium having storedthereon instructions, which may be used to program a computer (or otherelectronic devices) to perform a process. As used herein, the term“machine-readable medium” refers to any medium, a plurality of the same,or a combination of different media, which participate in providing data(e.g., instructions, data structures) which may be read by a computer, aprocessor, or a like device. Such a medium may take many forms,including but not limited to, non-volatile media, volatile media, andtransmission media. Non-volatile media include, for example, optical ormagnetic disks and other persistent memory. Volatile media includedynamic random access memory, which typically constitutes the mainmemory of the computer. Transmission media include coaxial cables,copper wire and fiber optics, including the wires that comprise a systembus coupled to the processor. Transmission media may include or conveyacoustic waves, light waves and electromagnetic emissions, such as thosegenerated during radio frequency (RF) and infrared (IR) datacommunications.

The machine-readable medium may include, but is not limited to, floppydiskettes, optical discs, CD-ROMs, magneto-optical disks, ROMs, RAMs,erasable programmable read-only memories (EPROMs), electrically erasableprogrammable read-only memories (EEPROMs), magnetic or optical cards,flash memory, or other type of media/machine-readable medium suitablefor storing electronic instructions. Moreover, embodiments herein mayalso be downloaded as a computer program product, wherein the programmay be transferred from a remote computer to a requesting computer byway of data signals embodied in a carrier wave or other propagationmedium via a communication link (e.g., modem or network connection).

Various forms of computer readable media may be involved in carryingdata (e.g. sequences of instructions) to a processor. For example, datamay be (i) delivered from RAM to a processor; (ii) carried over awireless transmission medium; (iii) formatted and/or transmittedaccording to numerous formats, standards or protocols; and/or (iv)encrypted in any of a variety of ways well known in the art.

A computer-readable medium can store (in any appropriate format) thoseprogram elements that are appropriate to perform the methods.

As shown, main memory 610 is encoded with application(s) 622 thatsupport(s) the functionality as discussed herein (an application 622 maybe an application that provides some or all of the functionality of oneor more of the mechanisms described herein). Application(s) 622 (and/orother resources as described herein) can be embodied as software codesuch as data and/or logic instructions (e.g., code stored in the memoryor on another computer readable medium such as a disk) that supportsprocessing functionality according to different embodiments describedherein.

During operation of one embodiment, processor(s) 604 accesses mainmemory 610 via the use of bus 602 in order to launch, run, execute,interpret or otherwise perform the logic instructions of theapplication(s) 622. Execution of application(s) 622 produces processingfunctionality of the service(s) or mechanism(s) related to theapplication(s). In other words, the process(es) 624 represents one ormore portions of the application(s) 1022 performing within or upon theprocessor(s) 604 in the computer system 600.

It should be noted that, in addition to the process(es) 624 thatcarries(carry) out operations as discussed herein, other embodimentsherein include the application 622 itself (i.e., the un-executed ornon-performing logic instructions and/or data). The application 622 maybe stored on a computer readable medium (e.g., a repository) such as adisk or in an optical medium. According to other embodiments, theapplication 622 can also be stored in a memory type system such as infirmware, read only memory (ROM), or, as in this example, as executablecode within the main memory 610 (e.g., within Random Access Memory orRAM). For example, application 622 may also be stored in removablestorage media 610, read-only memory 608, and/or mass storage device 612.

Those skilled in the art will understand that the computer system 600can include other processes and/or software and hardware components,such as an operating system that controls allocation and use of hardwareresources.

As discussed herein, embodiments of the present invention includevarious steps or operations. A variety of these steps may be performedby hardware components or may be embodied in machine-executableinstructions, which may be used to cause a general-purpose orspecial-purpose processor programmed with the instructions to performthe operations. Alternatively, the steps may be performed by acombination of hardware, software, and/or firmware. The term “module”refers to a self-contained functional component, which can includehardware, software, firmware or any combination thereof.

One of ordinary skill in the art will readily appreciate and understand,upon reading this description, that embodiments of an apparatus mayinclude a computer/computing device operable to perform some (but notnecessarily all) of the described process.

Embodiments of a computer-readable medium storing a program or datastructure include a computer-readable medium storing a program that,when executed, can cause a processor to perform some (but notnecessarily all) of the described process.

Where a process is described herein, those of ordinary skill in the artwill appreciate that the process may operate without any userintervention. In another embodiment, the process includes some humanintervention (e.g., a step is performed by or with the assistance of ahuman).

As used in this description, the term “portion” means some or all. So,for example, “A portion of X” may include some of “X” or all of “X”. Inthe context of a conversation, the term “portion” means some or all ofthe conversation.

As used herein, including in the claims, the phrase “at least some”means “one or more,” and includes the case of only one. Thus, e.g., thephrase “at least some ABCs” means “one or more ABCs”, and includes thecase of only one ABC.

As used herein, including in the claims, the phrase “based on” means“based in part on” or “based, at least in part, on,” and is notexclusive. Thus, e.g., the phrase “based on factor X” means “based inpart on factor X” or “based, at least in part, on factor X.” Unlessspecifically stated by use of the word “only”, the phrase “based on X”does not mean “based only on X.”

As used herein, including in the claims, the phrase “using” means “usingat least,” and is not exclusive. Thus, e.g., the phrase “using X” means“using at least X.” Unless specifically stated by use of the word“only”, the phrase “using X” does not mean “using only X.”

In general, as used herein, including in the claims, unless the word“only” is specifically used in a phrase, it should not be read into thatphrase.

As used herein, including in the claims, the phrase “distinct” means “atleast partially distinct.” Unless specifically stated, distinct does notmean fully distinct. Thus, e.g., the phrase, “X is distinct from Y”means that “X is at least partially distinct from Y,” and does not meanthat “X is fully distinct from Y.” Thus, as used herein, including inthe claims, the phrase “X is distinct from Y” means that X differs fromY in at least some way.

As used herein, including in the claims, a list may include only oneitem, and, unless otherwise stated, a list of multiple items need not beordered in any particular manner. A list may include duplicate items.For example, as used herein, the phrase “a list of XYZs” may include oneor more “XYZs”.

It should be appreciated that the words “first” and “second” in thedescription and claims are used to distinguish or identify, and not toshow a serial or numerical limitation. Similarly, the use of letter ornumerical labels (such as “(a)”, “(b)”, and the like) are used to helpdistinguish and/or identify, and not to show any serial or numericallimitation or ordering.

No ordering is implied by any of the labeled boxes in any of the flowdiagrams unless specifically shown and stated. When disconnected boxesare shown in a diagram the activities associated with those boxes may beperformed in any order, including fully or partially in parallel.

While the invention has been described in connection with what ispresently considered to be the most practical and preferred embodiments,it is to be understood that the invention is not to be limited to thedisclosed embodiments, but on the contrary, is intended to cover variousmodifications and equivalent arrangements included within the spirit andscope of the appended claims.

What is claimed is:
 1. A non-transitory computer-readable medium withone or more computer programs stored therein that, when executed by oneor more processors of a device having at least one video camera and atleast one time tracking device, cause the one or more processors toperform the operations of: (A) receiving at the device, a first commandto start the time tracking device at a first time; (B) upon receivingthe first command, starting the time tracking device to track time andthe video camera to record video at a first time; (C) receiving at thedevice, a second command to stop the time tracking device at a secondtime (D) upon receiving the second command, stopping the time trackingdevice from tracking time and the video camera from recording video atthe second time; and (E) determining a first total amount of timetracked from the first time to the second time; (F) obtaining a firstcontinual video from the at least one video camera of a video recordingbeginning at the first time and ending at the second time; (G) uploadingthe first continual video to a backend system; (H) communicating thefirst total amount of time to the backend system; (I) using the backendsystem, creating a first bill of sale for work performed during a firsttime period starting at the first time and ending at the second time;(J) using the backend system, delivering the first bill of sale to afirst client; and (K) using the backend system, delivering the firstcontinual video to the first client.
 2. The non-transitorycomputer-readable medium of claim 1 wherein the one or more computerprograms, when executed by one or more processors of the device, causethe one or more processors to perform the operations of: (L) receivingat the device, a third command to start the time tracking device at athird time; (M) upon receiving the third command, starting the timetracking device to track time and the video camera to record video at athird time; (N) receiving at the device, a fourth command to stop thetime tracking device at a fourth time at a fourth time; (O) uponreceiving the fourth command, stopping the time tracking device fromtracking time and the video camera from recording video at the fourthtime; and (P) determining a second total amount of time tracked from thethird time to the fourth time; (Q) obtaining a second continual videofrom the at least one video camera of a video recording beginning at thethird time and ending at the fourth time; (R) uploading the secondcontinual video to the backend system; and (S) communicating the secondtotal amount of time to the backend system; (T) adding the first totalamount of time tracked and the second total amount of time tracked toform a third total amount of time tracked; (U) combining the firstcontinual video and the second continual video to form a third continualvideo; (V) using the backend system, creating a second bill of sale forwork performed during a second time period starting at the first timeand ending at the fourth time; (W) using the backend system, deliveringthe second bill of sale to the first client; and (X) using the backendsystem, delivering the third continual video to the first client.
 3. Thenon-transitory computer-readable medium of claim 1 wherein the one ormore computer programs, when executed by one or more processors of thedevice, cause the one or more processors to perform the operations of:(A)(1) prior to step (A), receiving input from a first user regarding afirst project; (G)(1) communicating to the backend system informationrelating to the input received from the first user regarding a firstproject in (A)(1).
 4. The non-transitory computer-readable medium ofclaim 1 wherein the one or more computer programs, when executed by oneor more processors of the device, cause the one or more processors toperform the operations of: (A)(1) prior to step (A), using a facialrecognition system to confirm an identity of a first user; (G)(1)communicating to the backend system in (D) includes information relatingto the user's identity confirmed in (A)(1).
 5. The non-transitorycomputer-readable medium of claim 1 wherein the one or more computerprograms, when executed by one or more processors of the device, causethe one or more processors to perform the operations of: (A)(1) prior tostep (A), using an image recognition system to identify a firstworkspace associated with a first user; (G)(1) communicating to thebackend system information relating to the first workspace identified in(A)(1).
 6. The non-transitory computer-readable medium of claim 1wherein the delivering of the first continual video to the first clientin (K) is performed by streaming the first continual video and/or bystoring the first continual video and making it available to download.7. A method, with a device having at least one video camera and at leastone time tracking device, the method comprising: (A) receiving at thedevice, a first command to start the time tracking device at a firsttime; (B) upon receiving the first command, starting the time trackingdevice to track time and the video camera to record video at a firsttime; (C) receiving at the device, a second command to stop the timetracking device at a second time (D) upon receiving the second command,stopping the time tracking device from tracking time and the videocamera from recording video at the second time; and (E) determining afirst total amount of time tracked from the first time to the secondtime; (F) obtaining a first continual video from the at least one videocamera of a video recording beginning at the first time and ending atthe second time; (G) uploading the first continual video to a backendsystem; (H) communicating the first total amount of time to the backendsystem; (I) receiving at the device, a third command to start the timetracking device at a third time; (J) upon receiving the third command,starting the time tracking device to track time and the video camera torecord video at a third time; (K) receiving at the device, a fourthcommand to stop the time tracking device at a fourth time (L) uponreceiving the fourth command, stopping the time tracking device fromtracking time and the video camera from recording video at the fourthtime; and (M) determining a second total amount of time tracked from thethird time to the fourth time; (N) obtaining a second continual videofrom the at least one video camera of a video recording beginning at thethird time and ending at the fourth time; (O) uploading the secondcontinual video to the backend system; (P) communicating the secondtotal amount of time to the backend system; (Q) adding the first totalamount of time tracked and the second total amount of time tracked toform a third total amount of time tracked; (R) combining the firstcontinual video and the second continual video to form a third continualvideo; (S) using the backend system, creating a first bill of sale forwork performed during a first time period starting at the first time andending at the fourth time and a second time period starting at the thirdtime and ending at the fourth time; (T) using the backend system,delivering the first bill of sale to a first client; and (U) using thebackend system, delivering the third continual video to the firstclient.
 8. The method of claim 7 further comprising: (A)(1) prior tostep (A), receiving input from a first user regarding a first project;(G)(1) communicating to the backend system information relating to theinput received from the first user regarding a first project in (A)(1).9. The method of claim 7 wherein the delivering of the third continualvideo to the first client in (U) is performed by streaming the firstcontinual video and/or by storing the first continual video and makingit available to download.
 10. The non-transitory computer-readablemedium of claim 2 further comprising: (U)(1) determining the length ofthe third continual video; (U)(2) comparing the length of the thirdcontinual video to the third total amount of time; (U)(3) upon adetermination that the length of the third continual video equals thethird total amount of time, communicating information based on thedetermination to the backend system.
 11. The non-transitorycomputer-readable medium of claim 2 wherein the delivering of the thirdcontinual video to the first client in (X) is performed by streaming thefirst continual video and/or by storing the first continual video andmaking it available to download.
 12. The method of claim 7 furthercomprising: (R)(1) determining the length of the third continual video;(R)(2) comparing the length of the third continual video to the thirdtotal amount of time; (R)(3) upon a determination that the length of thethird continual video equals the third total amount of time,communicating information based on the determination to the backendsystem.
 13. A non-transitory computer-readable medium with one or morecomputer programs stored therein that, when executed by one or moreprocessors of a device having at least one video camera and at least onetime tracking device, cause the one or more processors to perform, theoperations of: (A) receiving at the device, a first command to start thetime tracking device at a first time; (B) upon receiving the firstcommand, starting the time tracking device to track time and the videocamera to record video at a first time; (C) receiving at the device, asecond command to stop the time tracking device at a second time (D)upon receiving the second command, stopping the time tracking devicefrom tracking time and the video camera from recording video at thesecond time; and (E) determining a first total amount of time trackedfrom the first time to the second time; (F) obtaining a first continualvideo from the at least one video camera of a video recording beginningat the first time and ending at the second time; (G) uploading the firstcontinual video to a backend system; (H) communicating the first totalamount of time to the backend system; (I) receiving at the device, athird command to start the time tracking device at a third time; (J)upon receiving the third command, starting the time tracking device totrack time and the video camera to record video at a third time; (K)receiving at the device, a fourth command to stop the time trackingdevice at a fourth time (L) upon receiving the fourth command, stoppingthe time tracking device from tracking time and the video camera fromrecording video at the fourth time; and (M) determining a second totalamount of time tracked from the third time to the fourth time; (N)obtaining a second continual video from the at least one video camera ofa video recording beginning at the third time and ending at the fourthtime; (O) uploading the second continual video to the backend system;(P) communicating the second total amount of time to the backend system;(Q) adding the first total amount of time tracked and the second totalamount of time tracked to form a third total amount of time tracked; (R)combining the first continual video and the second continual video toform a third continual video; (S) using the backend system, creating afirst bill of sale for work performed during a first time periodstarting at the first time and ending at the fourth time and a secondtime period starting at the third time and ending at the fourth time;(T) using the backend system, delivering the first bill of sale to afirst client; and (U) using the backend system, delivering the thirdcontinual video to the first client.
 14. The non-transitorycomputer-readable medium of claim 13 wherein the one or more computerprograms, when executed by one or more processors of the device, causethe one or more processors to perform the operations of: (A)(1) prior tostep (A), receiving input from a first user regarding a first project;(G)(1) communicating to the backend system information relating to theinput received from the first user regarding a first project in (A)(1).15. The non-transitory computer-readable medium of claim 13 wherein theone or more computer programs, when executed by one or more processorsof the device, cause the one or more processors to perform theoperations of: (A)(1) prior to step (A), using a facial recognitionsystem to confirm an identity of a first user; (G)(1) communicating tothe backend system information relating to the user's identity confirmedin (A)(1).
 16. The non-transitory computer-readable medium of claim 13wherein the one or more computer programs, when executed by one or moreprocessors of the device, cause the one or more processors to performthe operations of: (A)(1) prior to step (A), using an image recognitionsystem to identify a first workspace associated with a first user;(G)(1) communicating to the backend system information relating to thefirst workspace identified in (A)(1).
 17. The non-transitorycomputer-readable medium of claim 13 wherein the delivering of the thirdcontinual video to the first client in (U) is performed by streaming thefirst continual video and/or by storing the first continual video andmaking it available to download.
 18. The non-transitorycomputer-readable medium of claim 13 wherein the combining the firstcontinual video and the second continual video to form a third continualvideo in (R) includes applying a timestamp and/or an annotation to thefirst continual video, the second continual video and/or the thirdcontinual video.